package com.matt.service;

import com.matt.commons.dto.sso.StaffDTO;
import com.matt.commons.page.PagerQuery;
import com.matt.domain.course.CoursePlan;
import com.matt.foundation.query.ChildrenCourseQuery;
import com.matt.foundation.vo.ChildrenCourseItemVo;
import com.matt.foundation.vo.ChildrenCourseListVo;
import com.matt.foundation.vo.CourseChangeRecordVo;
import com.matt.foundation.vo.course.CourseEvaluateListVo;
import com.matt.foundation.vo.course.PadTeacherCoursePlanListVo;
import com.matt.foundation.vo.course.WebCoursePlanDetailVo;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;

/**
 * *******************************
 * Created by Ron.
 * form com.matt
 * on 2017/9/7
 * *******************************
 */
public interface ChildrenCourseService {

    Page<ChildrenCourseListVo> getChildrenCoursePageByCondition(ChildrenCourseQuery query);

    List<ChildrenCourseItemVo> getItemByChildrenCourseId(String childrenCourseId);

    Map modifyPlanDetail(String areaId, String childrenId, String childrenCourseId);

    Boolean modifyLeftCourseTime(String ticket, String childrenId, String remark, Integer times);

    Page<PadTeacherCoursePlanListVo> getHistoryCoursePlan(String teacherId, String areaId, PagerQuery query);

    WebCoursePlanDetailVo getWebCoursePlanDetail(StaffDTO staff, String planId);

    List<CourseEvaluateListVo> getCourseNonEvaluate(String teacherId);

    Map checkIn(StaffDTO staff, String courseItemId, Integer status, String remark);

    List<CourseChangeRecordVo> getRecordsByChildren(String childrenId);

    boolean hasChildren(String planId);

    CoursePlan beginCourse(StaffDTO staff, List<Map> childrenCourseStatusDto,  String[] teacherIds, String coursePlanId);
}
